#ifndef __IO_APP_H__
#define __IO_APP_H__
#include "stdint.h"

#define BEEP_ON_DELAY	5
#define BEEP_OFF_DELAY	2

#define BUZZER_ON()		GPIO_SetBits(GPIOC, GPIO_Pin_13) 
#define BUZZER_OFF()	GPIO_ResetBits(GPIOC, GPIO_Pin_13)

//PA11
#define LED_BLUE_ON()	GPIO_SetBits(GPIOA,GPIO_Pin_11)
#define LED_BLUE_OFF()	GPIO_ResetBits(GPIOA,GPIO_Pin_11)
//PA12
#define LED_YELLOW_ON()	 GPIO_SetBits(GPIOA,GPIO_Pin_12)
#define LED_YELLOW_OFF()	 GPIO_ResetBits(GPIOA,GPIO_Pin_12)


struct s_Led_State
{
uint8_t color;
uint32_t time;
uint32_t action;
};

extern struct s_Led_State Led_State;

#define Led_Task_Working		1
#define Led_Task_Work_Err		2
#define Led_Task_Work_True		3
#define Led_Task_Inport			4
#define Led_Task_Read			5

#define Led_Wrong_Act			10


extern void Led_red_on(void);
extern void Led_blue_on(void);
extern void Led_green_on(void);
extern void Led_white_on(void);
extern void Led_yellow_on(void);
extern void Led_purple_on(void);
extern void Led_cyan_on(void);
extern void Led_off(void);

void SW_DIP_IO_Init(void);
extern uint8_t sw_dip_id;
extern uint8_t IO_Status;


extern void Update_SW_DIP(void);


extern void IO_App_Init(void);
extern void TTL_IO_Init(void);
extern void IN_Port_Task(void);

extern void UI_Init(void);

extern void Buzzer_timers_add(uint8_t i);
extern void Buzzer_Task(void);
extern void Systerm_Start_Buzzer(void);
extern void Buzzer_Open_Door(void);
extern void Buzzer_Close_Door(void);
extern void Buzzer_Suc_Read(void);
extern void Buzzer_Err_Read(void);
extern void Buzzer_Tick3(void);


extern void Systerm_Start_Led(void);
extern void Led_Task(void);
extern void Led_Action_Task(void);
#endif //__IO_APP_H__
